home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-02-26 | 8.7 KB | 269 lines | [TEXT/MPS ] |
- # Syntax: makeuserarea cheaderfile [cheaderfile]
- Set TMONFolder "" # The directory location of the TMON Application
- Set CHeaderFile "" # Default header file
- Set UserAreaName "New Angus User Area" # Default User Area Name
-
- ########################################
- # Locate the C Header File ####
- ########################################
- If "{#}" < 1
- Set CHeaderFile "`GetFileName -m "Choose a C header (.h) file" "{CIncludes}"`"
- If "{CHeaderFile}" == ""
- Echo "### Usage: {0} did not find a C header file. Can not continue"
- Exit 1
- Else
- Set ∂# 1
- Set ∂"parameters∂" {CHeaderFile}
- End
- end
-
- ###########################################
- # Locate the TMON Application directory ###
- ##########################################
- if !(`exists -w "{SystemFolder}Extensions:TMON Folder:TMON"`)
- Set TMONFolder "`GetFileName -d -q -m "Find TMON Folder Directory" "{SystemFolder}Extensions:"`"
- # If Cancel button was chosen, could not find TMON Application.
- If !(`exists -w "{TMONFolder}TMON"`)
- Echo "### {0}: TMON Application not found"
- Exit 1
- End
- else
- Set TMONFolder "{SystemFolder}Extensions:TMON Folder:"
- end
- ########################################
- # End locating of TMON App ####
- ########################################
-
-
-
- ########################################
- # Create User Area Template Creation ###
- ########################################
- new derezUserArea
- set rezFile derezUserArea
- if (`exists "{RIncludes}TmonTypes.r"`)
- echo "#include ∂"TmonTypes.r∂"" >> {rezFile}
- echo "resource 'RTy#' (256) ∂{" >> {rezFile}
- echo " ∂{ /* array TypeArray: 1 elements */" >> {rezFile}
- echo " /* [1] */" >> {rezFile}
- echo " 'Asm '," >> {rezFile}
- echo " procAll," >> {rezFile}
- echo " fpuAll," >> {rezFile}
- echo " mmuAll," >> {rezFile}
- echo " worldAll," >> {rezFile}
- echo " sysAll," >> {rezFile}
- echo " qdAll," >> {rezFile}
- echo " vmAll," >> {rezFile}
- echo " slotAll," >> {rezFile}
- echo " nonrelocatable," >> {rezFile}
- echo " immutable," >> {rezFile}
- echo " optional," >> {rezFile}
- echo " ∂{ /* array IDArray: 1 elements */" >> {rezFile}
- echo " /* [1] */" >> {rezFile}
- echo " 256, 256" >> {rezFile}
- echo " ∂}" >> {rezFile}
- echo " ∂}" >> {rezFile}
- echo "∂};" >> {rezFile}
- echo "" >> {rezFile}
- echo "resource 'TMPL' (267, ∂"Asm ∂", purgeable) ∂{" >> {rezFile}
- echo " ∂{ /* array ItemArray: 6 elements */" >> {rezFile}
- echo " /* [1] */" >> {rezFile}
- echo " ∂"NumMacros∂"," >> {rezFile}
- echo " 'OCNT'," >> {rezFile}
- echo " /* [2] */" >> {rezFile}
- echo " ∂"*****∂"," >> {rezFile}
- echo " 'LSTC'," >> {rezFile}
- echo " /* [3] */" >> {rezFile}
- echo " ∂"Flags∂"," >> {rezFile}
- echo " 'HBYT'," >> {rezFile}
- echo " /* [4] */" >> {rezFile}
- echo " ∂"Data∂"," >> {rezFile}
- echo " 'PSTR'," >> {rezFile}
- echo " /* [5] */" >> {rezFile}
- echo " ∂"Name∂"," >> {rezFile}
- echo " 'ECST'," >> {rezFile}
- echo " /* [6] */" >> {rezFile}
- echo " ∂"*****∂"," >> {rezFile}
- echo " 'LSTE'" >> {rezFile}
- echo " ∂}" >> {rezFile}
- echo "∂};" >> {rezFile}
- echo "" >> {rezFile}
- echo "data 'UsrF' (256) ∂{" >> {rezFile}
- echo " $∂"000F 007F 0000 0000∂"" >> {rezFile}
- echo "∂};" >> {rezFile}
- else
- echo "data 'RTy#' (256) ∂{" >> {rezFile}
- echo " $∂"0001 4173 6D20 FFFF FFFF FFFF 0002 0001∂" " >> {rezFile}
- echo " $∂"0100 0100∂" " >> {rezFile}
- echo "∂};" >> {rezFile}
-
- echo "data 'UsrF' (256) ∂{" >> {rezFile}
- echo " $∂"000F 007F 0000 0000∂" " >> {rezFile}
- echo "∂};" >> {rezFile}
- end
- rez derezUserArea -o "{UserAreaName}" -t 'User' -c 'Tmon'
- close -n derezUserArea
-
- if !(`exists -w "{UserAreaName}"`)
- Echo "### {0}: No User Area Template"
- Exit 1
- end
-
- #####################################
- # End User Area Template Creation ###
- #####################################
-
-
- #####################################
- ### Create all the temporary files
- #####################################
- if !(`exists "AsmResources"`)
- new AsmResources
- end
- if !(`exists "AliasData"`)
- new AliasData
- end
- if !(`exists "PostCHeaderFile"`)
- new PostCHeaderFile
- end
- if !(`exists -w "tmpAliasData"`)
- new tmpAliasData
- end
- if !(`exists "tmpAsmResources"`)
- new tmpAsmResources
- end
-
-
- ############################################
- # Clear out the AsmResources file
- ############################################
- target AsmResources
- find •:∞
- cut § # get rid of old stuff
- ############################################
- # Write out the #includes for AsmResources file
- ############################################
- find •
- echo "#include ∂"Macsbug.r∂"" >> AsmResources
- echo "#include ∂"TMONTypes.r∂"" >> AsmResources
-
- ############################################
- # derez TMON Pro 'Asm ' resource only once
- ############################################
- derez "{TMONFolder}TMON" -only 'Asm ' {RIncludes}TMONTypes.r >> "AsmResources"
-
- ############################################
- ##### Clear AliasData file #######
- ############################################
- target "AliasData"
- find •:∞
- clear § # get rid of old stuff
-
-
- ##################################################################
- # For each .h file, add the Asm resources and alias data ###
- ###################################################################
- For item in {"parameters"}
- ############################################
- # Make sure each parameter is a valid file or directory. If an invalid file or directory was given,
- # write an error message and continue processing parameters.
- ############################################
- If !"`Exists "{item}"`"
- Echo "### {1}: {item} not a valid file or directory name."
- Continue
- End >> Dev:StdErr
-
- ############################################
- # Get rid of the global glue for such files as GX
- ############################################
- c -e "{item}" > "PostCHeaderFile"
-
- ############################################
- # Need to cut out all extra #include files here
- # My current algorithm goes to the bottom of the file
- # and then selects everything from there to the first LINE statement above
- ############################################
- target "PostCHeaderFile"
- find ∞ # Find bottom of file
- find \#line\:∞ # Select from bottom of file to last LINE command
- cut § # Cut the part we want
- find •:∞ # Select all of the file
- paste § # Paste the part we cut above
-
- ############################################
- # Now, generate the 'Asm ' resource rez file
- ############################################
- debugit -i "PostCHeaderFile" -o tmpAsmResources -tmon
-
- ############################################
- # Now, generate the alias data file
- ############################################
- debugit -i PostCHeaderFile -o tmpAliasData -alias
-
- ############################################
- # Select all of the tmpAliasData
- ############################################
- target "tmpAliasData"
- find •:∞
- cut §
- ############################################
- # Append all of tmpAliasData to permanent AliasData
- ############################################
- target "AliasData"
- find ∞
- paste §
-
- ############################################
- # Add comma and newline to end of permanent AsmResources
- ############################################
- target "AsmResources"
- find • # get to top of file
- find /∂,∂n/ # get a comma and a new line
- copy § # get to clipboard
- find /∂n∂t}∂n}/¡0 # Get before last two brackets
- paste § # paste a comma and a new line
-
- ############################################
- # Select all of the tmpAsmResources
- ############################################
- target "tmpAsmResources"
- find •:∞
- cut §
- ############################################
- # Paste in the tmpAsmResources into permanent AsmResources
- ############################################
- target "AsmResources"
- paste §
- end
-
- #########################################
- # End of For Loop #########
- ########################################
-
- ########################################
- # cleanup all the temporary files
- ########################################
- close "tmpAsmResources" -n # close without saving
- close "tmpAliasData" -n
- close "PostCHeaderFile" -n # close without saving
-
- #########################################
- # Make the resource fork of user area #########
- ########################################
- rez AsmResources -a -rd -o "{UserAreaName}" {RIncludes}TMONTypes.r
- close "AsmResources" -n
-
- #########################################
- # Make the data fork of user area #########
- ########################################
- duplicate -d AliasData "{UserAreaName}" -y
- close "AliasData" -n
-
- #########################################
- # User Area Complete: Copy over to destination #########
- ########################################
- duplicate "{UserAreaName}" "{TMONFolder}" -y
-
-
- echo {UserAreaName} "Created: Job Done!"
-